home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Games / Pentominoes 2.0 / Shell ƒ / integrity.c < prev    next >
Encoding:
Text File  |  1995-07-15  |  7.2 KB  |  61 lines  |  [TEXT/MMCC]

  1. of(short);
  2.             bad=(offset>maxOffset);
  3.         }
  4.         if (!bad)
  5.         {
  6.             realNumOfThisType=Count1Resources(thisType);
  7.             bad=(numOfThisType!=realNumOfThisType);
  8.         }
  9.         if (!bad)
  10.         {
  11.             while ((numOfThisType>0) && (!bad))
  12.             {
  13.                 resSize=*((long*)offset);
  14.                 offset+=sizeof(long);
  15.                 bad=(offset>maxOffset);
  16.                 if (!bad)
  17.                 {
  18.                     resID=*((short*)offset);
  19.                     offset+=sizeof(short);
  20.                     bad=(offset>maxOffset);
  21.                 }
  22.                 if (!bad)
  23.                 {
  24.                     resHandle=Get1Resource(thisType, resID);
  25.                     bad=(resHandle==0L);
  26.                 }
  27.                 if (!bad)
  28.                 {
  29.                     realSize=SizeResource(resHandle);
  30.                     bad=(realSize!=resSize);
  31.                     dontRelease=((thisType=='CODE') || (thisType==kIntegrityType));
  32.                     resAttrs=GetResAttrs(resHandle);
  33.                     dontRelease|=(resAttrs&resPreload);
  34.                     if (!dontRelease)
  35.                         ReleaseResource(resHandle);
  36.                 }
  37.                 numOfThisType--;
  38.             }
  39.         }
  40.     }
  41.     
  42.     HUnlock(integrityHandle);
  43.     ReleaseResource(integrityHandle);
  44.     SetResLoad(TRUE);
  45.     
  46.     return !bad;
  47. }
  48.  
  49. static    short CountRelevantTypes(void)
  50. {
  51.     short            i;
  52.     short            numTypesToWorryAbout;
  53.     
  54.     numTypesToWorryAbout=Count1Types();
  55.     for (i=0; i<kExcludedTypes; i++)
  56.         if (Count1Resources(gExcludedType[i])>0)
  57.             numTypesToWorryAbout--;
  58.     
  59.     return numTypesToWorryAbout;
  60. }
  61.